<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>预定义常量</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="json.resources.html">« 资源类型</a></li>
      <li style="float: right;"><a href="class.jsonexception.html">JsonException »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.json.html">JSON</a></li>
    <li>预定义常量</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="json.constants" class="appendix">
 <h1>预定义常量</h1>

 <p class="simpara">下列常量由此扩展定义，且仅在此扩展编译入 PHP 或在运行时动态载入时可用。</p>
 <p class="para">
  以下常量表示了 <span class="function"><a href="function.json-last-error.html" class="function">json_last_error()</a></span> 函数，或
  <span class="classname"><a href="class.jsonexception.html" class="classname">JsonException</a></span> 类中的
  <var class="varname">code</var> 变量所返回的错误类型。
 </p>
 <dl>
  
   <dt id="constant.json-error-none">
    <strong><code>JSON_ERROR_NONE</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     没有错误发生。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-depth">
    <strong><code>JSON_ERROR_DEPTH</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     到达了最大堆栈深度。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-state-mismatch">
    <strong><code>JSON_ERROR_STATE_MISMATCH</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     出现了下溢（underflow）或者模式不匹配。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-ctrl-char">
    <strong><code>JSON_ERROR_CTRL_CHAR</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     控制字符错误，可能是编码不对。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-syntax">
    <strong><code>JSON_ERROR_SYNTAX</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     语法错误。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-utf8">
    <strong><code>JSON_ERROR_UTF8</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     异常的 UTF-8 字符，也许是因为不正确的编码。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-recursion">
    <strong><code>JSON_ERROR_RECURSION</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
      传递给 <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span> 函数的对象或数组包含了递归引用，导致无法被编码。如果打开了
      <strong><code>JSON_PARTIAL_OUTPUT_ON_ERROR</code></strong> 选项，则牵涉到递归引用的数据会转换成
      <strong><code>null</code></strong> 后返回。
    </span>
   </dd>

  
  
   <dt id="constant.json-error-inf-or-nan">
    <strong><code>JSON_ERROR_INF_OR_NAN</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     传递给 <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span> 函数的参数中包含了
     <a href="language.types.float.html#language.types.float.nan" class="link"><strong><code>NAN</code></strong></a>
     或 <a href="function.is-infinite.html" class="link"><strong><code>INF</code></strong></a>，导致编码出错。如果打开了
     <strong><code>JSON_PARTIAL_OUTPUT_ON_ERROR</code></strong> 选项，则牵涉到对应不可编码的数字，会转换成数字
     <code class="literal">0</code> 后返回。
    </span>
   </dd>

  
   
   <dt id="constant.json-error-unsupported-type">
    <strong><code>JSON_ERROR_UNSUPPORTED_TYPE</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
      传递了不支持的数据类型给 <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span> 函数，比如 <a href="language.types.resource.html" class="link">资源(resource)</a>。如果打开了
      <strong><code>JSON_PARTIAL_OUTPUT_ON_ERROR</code></strong> 选项，则对于不支持的数据类型，会转换成
      <strong><code>null</code></strong> 后返回。
    </span>
   </dd>

  
  
  
   <dt id="constant.json-error-invalid-property-name">
    <strong><code>JSON_ERROR_INVALID_PROPERTY_NAME</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     A key starting with \u0000 character was in the string passed to
     <span class="function"><a href="function.json-decode.html" class="function">json_decode()</a></span> when decoding a JSON object into a PHP
     object.
    </span>
   </dd>

  
  
   <dt id="constant.json-error-utf16">
    <strong><code>JSON_ERROR_UTF16</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     Single unpaired UTF-16 surrogate in unicode escape contained in the
     JSON string passed to <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span>.
    </span>
   </dd>

  
 </dl>


 <p class="para">
  下面的常量可以和 <span class="function"><a href="function.json-decode.html" class="function">json_decode()</a></span> 的 form 选项结合使用。
 </p>
 <dl>
  
   <dt id="constant.json-bigint-as-string">
    <strong><code>JSON_BIGINT_AS_STRING</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     将大数字编码成原始字符原来的值。
    </span>
   </dd>

  
  
   <dt id="constant.json-object-as-array">
    <strong><code>JSON_OBJECT_AS_ARRAY</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     将 JSON 对象作为数组解码。当调用 <span class="function"><a href="function.json-decode.html" class="function">json_decode()</a></span> 且第二个参数为
     <strong><code>true</code></strong> 时此选项会自动添加。
    </span>
   </dd>

  
 </dl>

 
 <p class="para">
  下面的常量可以和 <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span> 的 form 选项结合使用。
  
 </p>
 <dl>
  
   <dt id="constant.json-hex-tag">
    <strong><code>JSON_HEX_TAG</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     所有的 &lt; 和 &gt; 转换成 \u003C 和 \u003E。
    </span>
   </dd>

  
  
   <dt id="constant.json-hex-amp">
    <strong><code>JSON_HEX_AMP</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     所有的 &amp; 转换成 \u0026。
    </span>
   </dd>

  
  
   <dt id="constant.json-hex-apos">
    <strong><code>JSON_HEX_APOS</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     所有的 &#039; 转换成 \u0027。
    </span>
   </dd>

  
  
   <dt id="constant.json-hex-quot">
    <strong><code>JSON_HEX_QUOT</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     所有的 &quot; 转换成 \u0022。
    </span>
   </dd>

  
  
   <dt id="constant.json-force-object">
    <strong><code>JSON_FORCE_OBJECT</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     使一个非关联数组输出一个类（Object）而非数组。
     在数组为空而接受者需要一个类（Object）的时候尤其有用。
    </span>
   </dd>

  
  
   <dt id="constant.json-numeric-check">
    <strong><code>JSON_NUMERIC_CHECK</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     将所有数字字符串编码成数字（numbers）。
    </span>
   </dd>

  
  
  
   <dt id="constant.json-pretty-print">
    <strong><code>JSON_PRETTY_PRINT</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     用空白字符格式化返回的数据。
    </span>
   </dd>

  
  
   <dt id="constant.json-unescaped-slashes">
    <strong><code>JSON_UNESCAPED_SLASHES</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     不要编码 <code class="literal">/</code>。
    </span>
   </dd>

  
  
   <dt id="constant.json-unescaped-unicode">
    <strong><code>JSON_UNESCAPED_UNICODE</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     以字面编码多字节 Unicode 字符（默认是编码成 \uXXXX）。
    </span>
   </dd>

  
  
   <dt id="constant.json-partial-output-on-error">
    <strong><code>JSON_PARTIAL_OUTPUT_ON_ERROR</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     Substitute some unencodable values instead of failing.
    </span>
   </dd>

  
  
   <dt id="constant.json-preserve-zero-fraction">
    <strong><code>JSON_PRESERVE_ZERO_FRACTION</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     确保 <span class="type">float</span> 值始终编码为为 float 值。
    </span>
   </dd>

  
  
   <dt id="constant.json-unescaped-line-terminators">
    <strong><code>JSON_UNESCAPED_LINE_TERMINATORS</code></strong>
      (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     The line terminators are kept unescaped when
     <strong><code>JSON_UNESCAPED_UNICODE</code></strong> is supplied. It uses the same
     behaviour as it was before PHP 7.1 without this constant.
     Available since PHP 7.1.0.
    </span>
   </dd>

  
 </dl>



 <p class="para">
  下面的常量可以和 <span class="function"><a href="function.json-decode.html" class="function">json_decode()</a></span> 及 <span class="function"><a href="function.json-encode.html" class="function">json_encode()</a></span> 的 form 选项结合使用。
 </p>
 <dl>
  
   <dt id="constant.json-invalid-utf8-ignore">
    <strong><code>JSON_INVALID_UTF8_IGNORE</code></strong>
    (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     忽略无效的 UTF-8 字符。自 PHP 7.2.0 起生效。
    </span>
   </dd>

  
  
   <dt id="constant.json-invalid-utf8-substitute">
    <strong><code>JSON_INVALID_UTF8_SUBSTITUTE</code></strong>
    (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     将无效 UTF-8 字符转换为 \0xfffd（Unicode 字符“虚缺号”）。自 PHP 7.2.0 起生效。
    </span>
   </dd>

  
  
   <dt id="constant.json-throw-on-error">
    <strong><code>JSON_THROW_ON_ERROR</code></strong>
    (<span class="type">int</span>)
   </dt>

   <dd>

    <span class="simpara">
     如果发生错误则会抛出 <span class="classname"><a href="class.jsonexception.html" class="classname">JsonException</a></span>，而不是通过 <span class="function"><a href="function.json-last-error.html" class="function">json_last_error()</a></span>
     和 <span class="function"><a href="function.json-last-error-msg.html" class="function">json_last_error_msg()</a></span> 检索设置到全局的错误状态。<strong><code>JSON_PARTIAL_OUTPUT_ON_ERROR</code></strong>
     优先于 <strong><code>JSON_THROW_ON_ERROR</code></strong>。自 PHP 7.3.0 起生效。
    </span>
   </dd>

  
 </dl>


</div>
</div></div></body></html>